from queue import Queue

class FCFS:

###############################################################################################################

    # INICIALIZACION
    def __init__ (self):
        self.ready = Queue()
        self.currentTask = None
        self.manager = None

    def __repr__(self):
        # Imprime las listas 
        return ('Politica utilizada: FCFS' )
    
###############################################################################################################

    # METODOS
    def actualTask(self): 
        # Retorna la tarea actual
        return self.currentTask

    def nextTask(self):
        # pide la siguiente tarea
        pcb = self.ready.get() # guarda la tarea, y la elimina de la cola
        self.currentTask = pcb
        return pcb 
        
    def addTask(self, aTask):
        # Agrega una tarea a la cola de listoss
        self.ready.put(aTask)

    def killTask(self):
        # Mata la tarea actual
        self.currentTask = None
        
    def hasNext(self):
        # Pregunta si existe una siguiente tarea
        return self.ready.qsize()> 0
    
    def listenCicloCpu(self):
        None
###############################################################################################################

    #GET&SET      
    def setManager(self, manager):
        self.manager = manager
    def setReady(self, readys):
        self.ready = readys    
    def getReady (self):
        return self.ready   
    def getCurrentTask (self):
        return self.currentTask